#include<iostream>
#include "casillero.h"
#include "../bgi/graphics.h"
using namespace std;

// Constructor
Casillero::Casillero(int left, int top, int right, int bottom)
{
	_left = left;
	_top = top;
	_right = right;	
	_bottom = bottom;
	_num = 0;
	_oculto = true;
	_flag = false;
}

void Casillero::set_left(int left)
{
	_left = left;
}

int Casillero::get_left()
{
	return _left;
}

void Casillero::set_top(int top)
{
	_top = top;
}

int Casillero::get_top()
{
	return _top;
}

void Casillero::set_right (int right)
{
	_right = right;
}

int Casillero::get_right()
{
	return _right;
}

void Casillero::set_bottom(int bottom)
{
	_bottom = bottom;
}

int Casillero::get_bottom()
{
	return _bottom;
}

int Casillero::get_num()
{
	return _num;
}

void Casillero::set_num(int num)
{
	_num = num;
}

bool Casillero::is_oculto()
{
	return _oculto;
}

void Casillero::set_oculto(bool oculto)
{
	_oculto = oculto;
}

bool Casillero::is_flagged()
{
	return _flag;
}

void Casillero::set_flag(bool flag)
{
	_flag = flag;
}

void Casillero::incrementar()
{
	_num++;
}

bool Casillero::is_mina()
{
	return (_num == -1);
}

void Casillero::reset_casillero()
{
	//_text = NULL;
	_num = 0;
	_oculto = true;
	_flag = false;
}

// dibuja el casillero y su contenido
void Casillero::dibujar()
{
	char buffer[20] = "";
	itoa(_num, buffer, 10);
	rectangle(_left,_top,_right,_bottom);

	// si el casillero no esta oculto, muestro el contenido
	if (!_oculto)
	{
		if (is_mina())
		{
			readimagefile("mine.jpg", _left + 2, _top + 2, _right - 2, _bottom - 2);
		}
		else if (_num == 0)
		{
			//rectangle(_left + 1, _top + 1, _right - 1, _bottom - 1);
		}
		else
		{
			outtextxy(_left + (_right - _left)/3, _top + (_bottom - _top)/3, buffer);	
		}
	}
	else
	{
		rectangle(_left + 1, _top + 1, _right - 1, _bottom - 1);
		//rectangle(_left + 2, _top + 2, _right - 2, _bottom - 2);
		if(is_flagged())
		{
		readimagefile("flag.jpg", _left + 2, _top + 2, _right - 2, _bottom - 2);
		}
	}
}